package co.gov.aerocivil.siga.vigilanciatecnicaempresas.servicio;

/**
 * Interfaz al servicio transversal de motor proceso
 * @author odashton
 */
public interface IMotorProcesoTramiteIngresarCertificadoServicio {
	/**
	 * Despliega un nueva versión del proceso al momento de desplegar el paquete
	 * en el servidor
	 * @param ignorar true si desea realizar nuevo despliegue independiente de si
	 * existe ya un proceso con el mismo nombre en el motor, en caso contrario false
	 */
	void desplegar( boolean ignorar );
	/**
	 * Obtiene la instancia en ejecución, este método funciona dentro del método
	 * ejecutado en una acción automática
	 * @return id instancia de proceos en ejecución en el contexto
	 */
	String obtenerInstanciaProcesoEnEjecucion();
	/**
	 * Obtiene el valor de una variable de proceso del motor
	 * Las variables de proceso como regla se manejarán directamente en la implementación
	 * del proceso, solo se utilizarán variables de proceso propias del motor cuando
	 * se requiera utilizar un valor ingresado en el formulario inicial en una actividad automática
	 * inmediatamente posterior
	 * @param nombreVariable Nombre de Variable
	 * @param <T> generico
	 * @return valor de la variable
	 */
	<T> T obtenerVariable( String nombreVariable );
}
